package xyz.ddlnt.servicemg.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.ddlnt.model.dto.TechnologyDTO;
import xyz.ddlnt.model.entity.Technology;
import xyz.ddlnt.model.vo.TechnologyInfoVO;
import xyz.ddlnt.model.vo.TechnologySelectVO;
import xyz.ddlnt.model.vo.TechnologyVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author ZZULI_SE 210910
 * @data 2025/5/1 20:55
 */
public interface TechnologyService extends IService<Technology> {

    /**
     * 查询所有科目
     * @return
     */
    List<TechnologyVO> selectAll();

    /**
     * 添加科目
     * @param technologyDTO
     * @return
     */
    TechnologyVO addTechnology(TechnologyDTO technologyDTO);

    /**
     * 更新科目
     * @param technologyDTO
     * @return
     */
    LocalDateTime updateTechnology(TechnologyDTO technologyDTO);

    /**
     * 删除科目
     * @return
     */
    Boolean deleteTechnology(Long technologyId);

    /**
     * 查询所有类别科目基本信息
     * @return
     */
    List<TechnologySelectVO> selectTechCategoryInfos();

    /**
     * 根据类别id查询类别下所有科目信息
     * @param categoryId
     * @return
     */
    List<TechnologyInfoVO> selectByCategoryId(Long categoryId);

    /**
     * 根据科目id查询科目信息
     * @param technologyId
     * @return
     */
    TechnologyInfoVO selectByTechnologyId(Long technologyId);
}
